class Solution {
public:

    int search(vector<int>& nums, int target) {

        int n = nums.size();
        if(n == 1){
            return nums[0] == target ? 0: -1;
        }
        int left = 0, right = n-1;

        while(left <= right){
            int mid = (left+right) /2 ;
            if(nums[mid] == target) return mid;
            if(nums[mid] < target){
                left = mid+1;
            }
            else{
                if(target <= nums[right]){
                    left = mid+1;
                }
                right = mid-1;
            }

        }

        return -1;
    }
};